﻿using System;

namespace 枚举的练习
{
    public enum Sesons
    {
        春,
        夏,
        秋,
        冬

    }
    public enum Renlei
    {
        非洲人,
        中国人,
        美国人,
        法国人,
        英国人
    }
    public enum fancai 
    {
        大米,
        米汤,
        小菜,
        肉
    }
    class Program
    {
        static void Main(string[] args)
        {
            //枚举类型默认可以跟int类型互相转换，枚举类型和int类型是相互兼容的。
            //enum enum enum enum enum enum enum enum enum enum enum enum enum 
            //public public public public public public public public public public public public public public 
            #region 将枚举类型强转为int类型
            //Console.WriteLine((int)Renlei.非洲人);
            //Console.WriteLine((int)Renlei.中国人);
            //Console.WriteLine((int)Renlei.美国人);
            //Console.WriteLine((int)Renlei.法国人);
            //Console.WriteLine((int)Renlei.英国人);
            #endregion
            #region 将int类型强转为枚举类型
            //int a = 0;
            //int b = 1;
            //int c = 2;
            //int d = 3;
            //int e = 4;
            //int f = 5;
            //Console.WriteLine((Renlei)a);
            //Console.WriteLine((Renlei)b);
            //Console.WriteLine((Renlei)c);
            //Console.WriteLine((Renlei)d);
            //Console.WriteLine((Renlei)e);
            //Console.WriteLine((Renlei)f);//如果枚举类型里面没有对应的值，直接转换成数字不会抛异常。
            #endregion
            #region 所有类型都能转换为string类型
            //int n1 = 10;
            //string w = n1.ToString();
            //double n2 = 3.14;
            //string r = n2.ToString();
            //decimal n3 = 5000m;
            //string o = n3.ToString();
            //Renlei l = Renlei.中国人;
            //string p = l.ToString();
            //Console.WriteLine(w);
            //Console.WriteLine(r);
            //Console.WriteLine(o);
            //Console.WriteLine(p);
            #endregion
            #region 将字符串转换为枚举类型

            //string a = "a";
            //调用parse这个方法就是为了将字符串转换为枚举类型
            //这个方法想要完成，需要我们提供一些参数，第一个参数就是获取谁的类型typeof(Renlei)；
            //第二个参数是你要转换的字符串
            //声明一个对应的枚举类型来接受，开头必须强调一遍你要转的是那个枚举。
            // Renlei b =(Renlei)Enum.Parse(typeof(Renlei), a);
            // Console.WriteLine(b);
            //typeof 获得 谁的 类型（）

            string a = "春";
            //Sesons s = (Sesons)Enum.Parse(typeof(Sesons), a);

            Console.WriteLine(typeof(Sesons));

            #endregion

            //枚举的练习 
            //#region //让用户输入他是那个国家的人，我们接受并将用户输入的转换成枚举类型
            //Console.WriteLine("请输入你是那个国家的人0-非洲人 1-中国人 2-美国人 3-法国人 4-英国人");
            //string a = Console.ReadLine();
            //int i = 0;
            //while (true)
            //{
            //    i++;
            //    if (i > 5)
            //    {
            //        break;
            //    }
            //    switch (a)
            //    {
            //        case "0":
            //            Renlei b = (Renlei)Enum.Parse(typeof(Renlei), a);
            //            Console.WriteLine("你真黑{0}", b);
            //            break;
            //        case "1":
            //            Renlei c = (Renlei)Enum.Parse(typeof(Renlei), a);
            //            Console.WriteLine("自己人哦{0}", c);
            //            break;
            //        case "2":
            //            Renlei d = (Renlei)Enum.Parse(typeof(Renlei), a);
            //            Console.WriteLine("啧{0}啊", d);
            //            break;
            //        case "3":
            //            Renlei e = (Renlei)Enum.Parse(typeof(Renlei), a);
            //            Console.WriteLine("{0}啊", e);
            //            break;
            //        case "4":
            //            Renlei f = (Renlei)Enum.Parse(typeof(Renlei), a);
            //            Console.WriteLine("{0}啊", f);
            //            break;
                        
                        
            //    }
              
            //}
             
            //#endregion
            //fancai a1 = fancai.大米;
            //string a2 = a1.ToString();
            //Console.ReadKey();
        }
    }
}
